#pragma once

// 引入标准输入输出流库和字符串库
#include <iostream>
#include <string>

// 定义日志级别宏常量
#define NORMAL  1   // 普通信息
#define WARNING 2   // 警告信息
#define DEBUG   3   // 调试信息
#define FATAL   4   // 致命错误

// 定义记录日志的宏，根据日志级别和消息内容调用log函数
#define LOG(LEVEL, MESSAGE) log(#LEVEL, MESSAGE, __FILE__, __LINE__)

// 定义log函数，用于输出日志信息
void log(std::string level, std::string message, std::string file, int line) {
    // 检查日志级别是否为"NORMAL"
    if (level == "NORMAL") {
        // 如果是普通信息，输出自定义格式的日志消息
        std::cout << "状态: 正常运行" << " [" << message << "]" << std::endl;
    }
    // 如果日志级别不是"NORMAL"，则输出详细格式的日志消息
    else {
        // 输出日志级别
        std::cout << "[" << level << "]" << "[" << time(nullptr) << "]"; // 输出当前时间
        std::cout << "[" << message << "]" << "[" << file << " : " << line << "]" << std::endl; // 输出消息内容、文件名和行号
    }
}